package com.cloudbroker.bcs.platform.ltb.bizapi.service.comment;

import com.cloudbroker.bcs.common.annotation.CreditsOper;
import com.cloudbroker.bcs.common.annotation.NoLogin;
import com.cloudbroker.bcs.common.constants.type.BusinessType;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.admin.back.CommentQueryResult;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.comment.back.CommentSaveBack;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.comment.back.CommentSearchResult;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.comment.back.CommentUpvoteResult;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.comment.vo.*;

/**
 * Created by zhaosh19213 on 2016/7/15.
 */

public interface CommentBizService {

    @CreditsOper(type= BusinessType.COMMENT)
    public CommentSaveBack funcSaveComment(CommentAddForm commentAddForm);

    public CommentSaveBack funcSaveCommentReply(CommentReplyForm commentReplyForm);

    public CommentSaveBack funcUpdateComment(CommentUpdateForm commentUpdateForm);

    public CommentSaveBack funcCloseComment(CommentStatusForm commentStatusForm);

    @CreditsOper(type= BusinessType.COMMENT_TOP)
    public CommentSaveBack fucTopComment(CommentTopForm commentTopForm);

    @NoLogin
    public CommentQueryResult queryCommentsByTarget(CommentTargetForm targetForm);

    public CommentSearchResult funcSearchComment(CommentSearchForm commentSearchForm);

    public CommentUpvoteResult funcUpvoteComment(CommentUpvoteForm form);
    }